package com.hskn.hss.module.tlfacilities.service;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hskn.hss.core.domain.BaseEntity;
import com.hskn.hss.entity.AjaxResult;
import com.hskn.hss.entity.TreeEntity;
import com.hskn.hss.exception.ExcelReaderDataException;
import com.hskn.hss.exception.HssException;
import com.hskn.hss.module.elementtotal.vo.ElementsListByAppVo;
import com.hskn.hss.module.oilDevice.to.AddOilSummaryTableTO;
import com.hskn.hss.module.oilDevice.vo.OilConsumeVO;
import com.hskn.hss.module.rptCarWork.entity.RptCarWork;
import com.hskn.hss.module.tlequip.entity.TlEquip;
import com.hskn.hss.module.tlfacilities.entity.TlFacilities;
import com.hskn.hss.module.tlfacilities.to.TIFacilitiesExcelWriteTo;
import com.hskn.hss.module.tlfacilities.to.TIFacilitiesTo;
import com.hskn.hss.module.tlfacilities.vo.*;
import com.hskn.hss.module.tltreespec.entity.TlTreespec;

import java.text.ParseException;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author hskn
 * @since 2021-05-13
 */
public interface ITlFacilitiesService extends IService<TlFacilities> {
    AjaxResult insert(TlFacilities tlFacilities) throws Exception;

    AjaxResult update(JSONObject params) throws Exception;
    AjaxResult updatebyids(TlFacilities tlFacilities) throws HssException;
    AjaxResult deletebyid(JSONObject params) throws HssException;
    AjaxResult deletebatchbyid(TlFacilities tlFacilities) throws HssException;
    void excelReader(List<TlFacilities> tlFacilitiesList) throws ExcelReaderDataException;
    ToiletPersonVO getToiletPersonMX(TIFacilitiesTo tiFacilitiesTo) throws HssException, ParseException;
    List<ToiletPersonMXVO> getToiletPersonMXExcel(TIFacilitiesExcelWriteTo tiFacilitiesTo) throws HssException, ParseException;
    TIFacilitiesVO getList(BaseEntity entity, TIFacilitiesTo tiFacilitiesTo) throws HssException;
    TIFacilitiesVO getToiletPerson(TIFacilitiesTo tiFacilitiesTo) throws HssException, ParseException;
    List<TlFacilities> getToiletPersonExcelWrite(TIFacilitiesExcelWriteTo tiFacilitiesTo) throws HssException, ParseException;
    List<List<Object>> getToiletPersonZX(TIFacilitiesTo tiFacilitiesTo) throws HssException, ParseException;
    TlFacilities getDetail(TlFacilities tlFacilities) throws HssException, ParseException;

    Map<String, Object> getTreeSpecList(String FId);

    TlTreespec getTreeSpec(String id);

    List getSelectList();

    List getSelectListByuid(JSONObject params);

    List<TreeEntity> getParamTree(JSONObject params) throws HssException;

    List<RptCarWork> selectLjpyWorkPlan(String fid);

    List<JSONObject> selectCarWorkByDate(JSONObject params) throws ParseException;

    JSONObject selectTlequipByFacId(JSONObject params);

    List<ElementsListByAppVo> appHomeFacilities(JSONObject params);

    List<TIFacilitiesAppTreeVO> getTreeName(JSONObject params);

    List<TIFacilitiesAppIdTreeVO> getArchivesTree(JSONObject params);

    Map<String, TlFacilities> getFacMap(QueryWrapper<TlFacilities> queryWrapper);

    Map<String, List<TlFacilities>> getFacTypeMap(QueryWrapper<TlFacilities> queryWrapper);
}
